<?php

namespace app\seller\controller;

class Index extends \app\common\controller\Seller
{

    /**
     * 卖家中心首页
     * @return html
     */
    public function index()
    {
        $platform_contact = \Fields::getById("platform_contact");
        $this->assign('platform_contact', $platform_contact);

        $store_info = model('Common/Store')->getStoreInfo($this->store_id);
        $store_grade = \Fields::getById('store_grade', $store_info['grade_id']);
        
        // 店铺信息
        if (intval($store_info['store_end_time']) > 0) {
            $store_info['store_end_time_text'] = date('Y-m-d', $store_info['store_end_time']);
            $reopen_time = $store_info['store_end_time'] - 3600 * 24 + 1 - TIMESTAMP;
            if (!checkPlatformStore() && $store_info['store_end_time'] - TIMESTAMP >= 0 && $reopen_time < 2592000) {
                //到期续签提醒(<30天)
                $store_info['reopen_tip'] = true;
            }
        } else {
            $store_info['store_end_time_text'] = '不限制';
        }
        // 店铺等级信息
        $store_info['grade_name'] = $store_grade['name'];
        $store_info['grade_goodslimit'] = $store_grade['sg_goods_limit'];
        $store_info['grade_albumlimit'] = $store_grade['sg_album_limit'];

        $this->assign('store_info', $store_info);
        // 商家帮助
        $this->assign('help_list', []);

        // 销售情况统计
        $field = ' COUNT(*) as ordernum,SUM(order_amount) as orderamount ';
        $where = array();
        $where['store_id'] = $this->store_id;
        $where['order_isvalid'] = 1; //计入统计的有效订单
        // 昨日销量
        $where['order_add_time'] = array('between', array(strtotime(date('Y-m-d', (time() - 3600 * 24))), strtotime(date('Y-m-d', time())) - 1));
        $daily_sales = model('Commoon/Stat')->getoneByStatorder($where, $field);
        $this->assign('daily_sales', $daily_sales);
        // 月销量
        $where['order_add_time'] = array('gt', strtotime(date('Y-m', time())));
        $monthly_sales = model('Commoon/Stat')->getoneByStatorder($where, $field);
        $this->assign('monthly_sales', $monthly_sales);
        unset($field, $where);

        //单品销售排行
        //最近30天
        $stime = strtotime(date('Y-m-d', (time() - 3600 * 24))) - (86400 * 29); //30天前
        $etime = strtotime(date('Y-m-d', time())) - 1; //昨天23:59
        $where = array();
        $where['store_id'] = $this->store_id;
        $where['order_isvalid'] = 1; //计入统计的有效订单
        $where['order_add_time'] = array('between', array($stime, $etime));
        $field = ' goods_id,goods_name,SUM(goods_num) as goodsnum,goods_image ';
        $orderby = 'goodsnum desc,goods_id';
        $goods_list = model('Common/Stat')->statByStatordergoods($where, $field, 0, 8, $orderby, 'goods_id');
        unset($stime, $etime, $where, $field, $orderby);
        $this->assign('goods_list', $goods_list);

        $this->assign('isOwnShop', false);

        $this->assign('menu_sign', 'index');
        return $this->fetch();
    }

    public function statistics()
    {
        $add_time_to = strtotime(date("Y-m-d") + 60 * 60 * 24);   //当前日期 ,从零点来时
        $add_time_from = strtotime(date("Y-m-d", (strtotime(date("Y-m-d")) - 60 * 60 * 24 * 30)));   //30天前
        $goods_online = 0;      // 出售中商品
        $goods_waitverify = 0;  // 等待审核
        $goods_verifyfail = 0;  // 审核失败
        $goods_offline = 0;     // 仓库待上架商品
        $goods_lockup = 0;      // 违规下架商品
        $consult = 0;           // 待回复商品咨询
        $no_payment = 0;        // 待付款
        $no_delivery = 0;       // 待发货
        $no_receipt = 0;        // 待收货
        $refund_lock = 0;      // 售前退款
        $refund = 0;            // 售后退款
        $return_lock = 0;      // 售前退货
        $return = 0;            // 售后退货
        $complain = 0;          //进行中投诉

        $model_goods = model('Common/Goods');
        // 全部商品数
        $goodscount = $model_goods->getGoodsCommonCount(array('store_id' => $this->store_id));
        // 出售中的商品
        $goods_online = $model_goods->getGoodsCommonOnlineCount(array('store_id' => $this->store_id));
        if (config('goods_verify')) {
            // 等待审核的商品
            $goods_waitverify = $model_goods->getGoodsCommonWaitVerifyCount(array('store_id' => $this->store_id));
            // 审核失败的商品
            $goods_verifyfail = $model_goods->getGoodsCommonVerifyFailCount(array('store_id' => $this->store_id));
        }
        // 仓库待上架的商品
        $goods_offline = $model_goods->getGoodsCommonOfflineCount(array('store_id' => $this->store_id));
        // 违规下架的商品
        $goods_lockup = $model_goods->getGoodsCommonLockUpCount(array('store_id' => $this->store_id));

        // 商品图片数量
        $imagecount = model('Common/Album')->getAlbumPicCount(array('store_id' => $this->store_id));

        $model_order = model('Common/Order');
        // 交易中的订单
        $progressing = $model_order->getOrderCountByID('store', $this->store_id, 'TradeCount');
        // 待付款
        $no_payment = $model_order->getOrderCountByID('store', $this->store_id, 'NewCount');
        // 待发货
        $no_delivery = $model_order->getOrderCountByID('store', $this->store_id, 'PayCount');

        //待确认的结算账单
        $model_bill = model('Common/Bill');
        $condition = array();
        $condition['ob_store_id'] = $this->store_id;
        $condition['ob_state'] = BILL_STATE_CREATE;
        $bill_confirm_count = $model_bill->getOrderBillCount($condition);

        //统计数组
        $statistics = array(
            'goodscount' => $goodscount,
            'online' => $goods_online,
            'waitverify' => $goods_waitverify,
            'verifyfail' => $goods_verifyfail,
            'offline' => $goods_offline,
            'lockup' => $goods_lockup,
            'imagecount' => $imagecount,
            'consult' => $consult,
            'progressing' => $progressing,
            'payment' => $no_payment,
            'delivery' => $no_delivery,
            'refund_lock' => $refund_lock,
            'refund' => $refund,
            'return_lock' => $return_lock,
            'return' => $return,
            'complain' => $complain,
            'bill_confirm' => $bill_confirm_count
        );
        return json($statistics);
    }

    public function quicklink()
    {
        $op = request()->get('op');
        switch ($op) {
            case "add":
                break;
            case "del":
                break;
        }
        exit('true');
    }

}
